package com.randi.generator.service;

import com.randi.generator.entity.GenTable;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public interface IGenTableService {

    /**
     * 查询业务列表
     *
     * @return 业务集合
     */
    List<GenTable> selectGenTableList(GenTable genTable);

    /**
     * 查看详情
     *
     * @param tableId tableId
     * @return status
     */
    GenTable selectGenTableById(Long tableId);

    /**
     * 导入数据
     *
     * @param tableNames tableNames
     * @return 结果
     */
    int importGenTable(String[] tableNames);

    /**
     * 预览
     * @param tableId tableId
     * @return codeMap
     */
    Map<String, String> previewCode(Long tableId);

    /**
     * 更新数据
     *
     * @param genTable genTable
     * @return status
     */
    int updateGenTable(GenTable genTable);

    /**
     * 删除数据
     *
     * @param tableId tableId
     * @return status
     */
    int deleteGenTable(Long tableId);

    /**
     * 批量删除数据
     *
     * @param tableIds tableIds
     * @return status
     */
    int deleteBatchGenTable(List<Long> tableIds);

    /**
     * 生成代码
     *
     * @param tableId tableId
     * @return Result
     */
    byte[] downloadCode(Long tableId) throws IOException;
}
